EC2(Ubuntu 22.04 LTS)に Nextflow の実行環境を構築してみた
Nextflow のパイプライン実行環境を EC2 インスタンスで作成してみました。インストール手順は非常に簡単だったのですが Ubuntu 22.04 LTS に Nextflow のインストール手順の備忘録です。
確認結果
- 現時点では Java 11 以上のインストール
sudo apt install openjdk-19-jre-headless -y
- Nextflow のバイナリをダウンロードするだけ
curl -s https://get.nextflow.io | bash
補足
- Bioconda 環境ならコマンド1つでインストールできる
conda install nextflow -y
検証環境
OS は Ubuntu 22.04 LTS の AMI から起動した EC2 インスタンスです。
$ head -n 1 /etc/os-release PRETTY_NAME="Ubuntu 22.04.2 LTS" $ curl http://169.254.169.254/latest/meta-data/ami-id ami-0d979355d03fa2522
Nextflow のセットアップ
公式サイトの Getting started を参考に実行環境を作成します。現時点では Java 11 以上のインストールと、Nextflow のバイナリ一発で動くシンプルな実行環境の提供方法でした。
A DSL for parallel and scalable computational pipelines | Nextflow
Java のインストール
Ubuntu 22.04 の AMI にデフォルトで Java はインストールされていませんでした。パッケージでインストールできる範囲で最新のOpenJDK 19
をインストールしました。
$ sudo apt update $ java -version Command 'java' not found, but can be installed with: sudo apt install openjdk-11-jre-headless # version 11.0.18+10-0ubuntu1~22.04, or sudo apt install default-jre # version 2:1.11-72build2 sudo apt install openjdk-17-jre-headless # version 17.0.6+10-0ubuntu1~22.04 sudo apt install openjdk-18-jre-headless # version 18.0.2+9-2~22.04 sudo apt install openjdk-19-jre-headless # version 19.0.2+7-0ubuntu3~22.04 sudo apt install openjdk-8-jre-headless # version 8u362-ga-0ubuntu1~22.04 $ sudo apt install openjdk-19-jre-headless -y $ java -version openjdk version "19.0.2" 2023-01-17 OpenJDK Runtime Environment (build 19.0.2+7-Ubuntu-0ubuntu322.04) OpenJDK 64-Bit Server VM (build 19.0.2+7-Ubuntu-0ubuntu322.04, mixed mode, sharing)
Nextflow のバイナリダウンロード
Nextflow のバイナリをダウンロードするコマンドが用意されていましたのでコピペで実行します。15K のバイナリが1つダウンロードされました。
$ curl -s https://get.nextflow.io | bash $ ls -lh total 16K -rwx--x--x 1 ubuntu ubuntu 15K May 3 13:09 nextflow
nextflow
コマンドを試してみたところ、あっさりと Hello World を実行できました。
$ ./nextflow -v nextflow version 23.04.1.5866 $ ./nextflow run hello N E X T F L O W ~ version 23.04.1 Pulling nextflow-io/hello ... downloaded from https://github.com/nextflow-io/hello.git Launching `https://github.com/nextflow-io/hello` [magical_pesquet] DSL2 - revision: 1d71f857bb [master] executor > local (4) [b5/cc35da] process > sayHello (4) [100%] 4 of 4 ✔ Ciao world! Bonjour world! Hello world! Hola world!
まとめ
Nextflow の実行環境の準備は非常に簡単。
- Java 11 以上のインストール
sudo apt install openjdk-19-jre-headless -y
- Nextflow のバイナリをダウンロード
curl -s https://get.nextflow.io | bash
オプション
nextflow
のバイナリはダウンロードしたディレクトリにパス通すより、/usr/bin
か/usr/local/bin
へ移動させた方が管理しやすいかと思います。
$ sudo mv nextflow /usr/local/bin $ which nextflow /usr/local/bin/nextflow $ nextflow -v nextflow version 23.04.1.5866
Bioconda でセットアップ
Bioconda でも Nextflow をインストールできるとのことで以下のドキュメントを参考に試してみます。
EC2 に Bioconda の実行環境を準備は以下のブログを参考にしてください。
Nextflow のインストール
Bioconda のチャンネルは登録された状態です。
$ conda config --get channels --add channels 'defaults' # lowest priority --add channels 'bioconda' --add channels 'conda-forge' # highest priority
Nextflow のテスト用に仮想環境を分けました。
$ conda create -n test-nextflow $ conda activate test-nextflow
conda install
でインストールできました。
$ conda install nextflow -y $ which nextflow /home/ubuntu/miniconda/envs/test-nextflow/bin/nextflow
Hello World も実行できました。
$ nextflow -v nextflow version 23.04.1.5866 $ nextflow run hello N E X T F L O W ~ version 23.04.1 Launching `https://github.com/nextflow-io/hello` [focused_ardinghelli] DSL2 - revision: 1d71f857bb [master] executor > local (4) [4c/144d29] process > sayHello (4) [100%] 4 of 4 ✔ Bonjour world! Ciao world! Hello world! Hola world!
まとめ
- Bioconda 環境ならコマンド1つでインストールできる
conda install nextflow -y
オプション
Nextflow のバージョンを指定してインストールしてバージョン管理することになると思います。conda search
で確認して特定のバージョンないし、最新バージョンをインストールするとよろしいかと思います。
$ conda search nextflow Loading channels: done # Name Version Build Channel nextflow 0.19.3 0 bioconda nextflow 0.21.3 0 bioconda nextflow 0.23.4 0 bioconda nextflow 0.24.1 0 bioconda nextflow 0.24.2 0 bioconda nextflow 0.25.1 0 bioconda nextflow 0.27.0 0 bioconda nextflow 0.27.1 0 bioconda nextflow 0.27.2 0 bioconda --- 中略 --- nextflow 21.10.6 h4a94de4_0 bioconda nextflow 22.04.0 h4a94de4_0 bioconda nextflow 22.04.5 h4a94de4_0 bioconda nextflow 22.10.0 h4a94de4_0 bioconda nextflow 22.10.1 h4a94de4_0 bioconda nextflow 22.10.4 h4a94de4_0 bioconda nextflow 22.10.6 h4a94de4_0 bioconda nextflow 23.04.1 h4a94de4_0 bioconda nextflow 23.04.1 h4a94de4_1 bioconda
バージョン指定のインストール方法はこういった指定になります。
$ conda install nextflow=23.04.1 -y
おわりに
Nextflow の実行環境構築を端折るために Docker コンテナでの実行を検討していたのですが、少し検証したところ個人的に都合が悪い点がでてきて EC2 へ直接インストールする方法へ行き着きました。コンテナ起動と同じレベルの簡単さで実行環境を作成できました。